Recovering UML Diagrams from Java Code using Patterns
نویسنده
چکیده
Recovering the static structure of legacy source code e.g. as an UML class diagram is quite well understood. In contrast, recovering high-level behaviour diagrams from source code is still an open issue. This paper proposes to use fuzzy pattern detection techniques for the recovery of UML collaboration diagrams from source code. The approach is based on a knowledge base of basic datatypes and of generic collection classes and of code clichés for Java beans and of fuzzy patterns for object structure look-up and modification clichés. We handle the diversity of existing code clichés by organizing them in an object-oriented hierarchy factorizing important common properties and by relaxing exactness requirements for cliché detection with the help of fuzzy theory. We handle the runtime efforts for cliché detection using a sophisticated inference mechanism based on generic fuzzy reasoning nets (GFRN's). The work is part of the FUJABA case tool aiming to support round-trip engineering for UML and Java. 1 INTRODUCTION Reverse engineering aims to provide program descriptions on higher levels of abstractions. Such an abstract level could e.g. be a program description using UML diagrams. These program descriptions facilitate the understanding of program structures and program behaviour. State-of-the-art CASE tools like Rational Rose [Ros], TogetherJ [Tog], and Rhapsody [Rha] provide only recovery functions for class diagrams using markers in the code. Notably, Rhapsody supports the recovery of state-charts. The recovery of high-level behaviour descriptions for legacy object-oriented programs is still an open issue.
منابع مشابه
Automatic Generation of Java Code from UML Diagrams using UJECTOR
In recent years, the significance of automated generation of object-oriented code from UML diagrams has increased due to its benefits, such as, cost reduction and accuracy. Consistency Checking between UML diagrams, and ensuring accuracy, maintainability, efficiency, and completeness of the generated code are the main concerns in this area. This paper extends our work on a tool called UJECTOR f...
متن کاملDesign of Rules for Transforming UML Sequence Diagrams into Java code
UML is a modeling language that most developers employed during design phase. UML provides various types of diagrams used for specifying both the structure and the behavior of systems. During the development process, models specified by these diagrams are eventually transformed into corresponding code. Although there are many researches studied about transforming UML models into code, they disc...
متن کاملProjecting UML Class Diagrams from Java Code Models
In model-driven software development, source code and other artifacts are used to describe and develop a software system. UML class diagrams are one of the most common models that are used. A UML class diagram models classes and interfaces of a software system as well as their relations. The usage of UML class diagrams in addition to source code can lead to drift and erosion if the models are n...
متن کاملGenerating JML Specifications from UML State Diagrams
We describe our work on the prototype AutoJML tool which automatically derives JML (Java Modelling Language) specifications from UML state diagrams. UML is widely used for modelling Object-Oriented systems on an abstract level. It should be possible to test whether concrete program code actually implements a UML model. The generated JML specifications can be used for this. There exist tools to ...
متن کاملMapping UML statecharts to java code
The Unified Modeling Language (UML) statechart diagram is used for modeling the dynamic aspects of systems. The UML statechart diagrams include many concepts that are not present in most popular programming languages, like Java or C++. There exists a gap between high level modeling language and a programming language. There is not a one-to-one mapping between a statechart and its implementation...
متن کامل